SACO: Static Analyzer for Concurrent Objects
نویسندگان
چکیده
We present the main concepts, usage and implementation of SACO, a static analyzer for concurrent objects. Interestingly, SACO is able to infer both liveness (namely termination and resource boundedness) and safety properties (namely deadlock freedom) of programs based on concurrent objects. The system integrates auxiliary analyses such as points-to and may-happen-in-parallel, which are essential for increasing the accuracy of the aforementioned more complex properties. SACO provides accurate information about the dependencies which may introduce deadlocks, loops whose termination is not guaranteed, and upper bounds on the resource consumption of methods.
منابع مشابه
Structural Testing of Concurrent Programs
Although structural testing techniques are among the weakest available with regard to developing confidence in sequential programs, they are not without merit. This paper extends the notion of structural testing criteria to concurrent programs and proposes a hierarchy of supporting structural testing techniques. Coverage criteria described include concurrency state coverage, state transition co...
متن کاملImplementing a Static Analyzer of Concurrent Programs: Problems and Perspectives
The aim of the paper is to share the design problems we experienced when we were implementing a prototype analyzer of an asyn-chronous concurrent language. This new kind of static analyzer is based on previous work about operational semantics of parallel languages that can express concurrency and non-determinism of actions: it constructs abstract automata reeecting all the possible execution be...
متن کاملTaking Static Analysis to the Next Level: Proving the Absence of Run-Time Errors and Data Races with Astrée
We present an extension of Astrée to concurrent C software. Astrée is a sound static analyzer for run-time errors previously limited to sequential C software. Our extension employs a scalable abstraction which covers all possible thread interleavings, and soundly reports all run-time errors and data races: when the analyzer does not report any alarm, the program is proven free from those classe...
متن کاملOn the Structure of Sharing in Open Concurrent Java Programs
This paper studies the structure of shared objects in open concurrent Java programs. It proposes classification of shared objects into three categories: central, owned and distributed. This classification facilitates program understanding and error detection in concurrent programs. The paper presents a new static analysis that infers central, owned and distributed objects in open concurrent Jav...
متن کاملA Geometric Approach to the Problem of Unique Decomposition of Processes
This paper proposes a geometric solution to the problem of prime decomposability of concurrent processes first explored by R. Milner and F. Moller in [MM93]. Concurrent programs are given a geometric semantics using cubical areas, for which a unique factorization theorem is proved. An effective factorization method which is correct and complete with respect to the geometric semantics is derived...
متن کامل